package com.iyimo.scene
{
	import com.iyimo.scene.i.IScene;
	import com.iyimo.util.IUtil;
	
	import flash.display.DisplayObjectContainer;
	import flash.display.MovieClip;
	import flash.events.EventDispatcher;

	public class BaseScene extends EventDispatcher implements IScene{
		/**
		 * view所在的层
		 */		
		protected var _parent:DisplayObjectContainer;
		
		/**
		 * scene所需要的view,一般而言,用于ui
		 */		
		protected var _view:MovieClip;
		
		public function BaseScene(rawView:MovieClip){
			_view = rawView;
			createView();
		}
		
		/**
		 * 创建scene的显示对象
		 */		
		public function initalize(parent:DisplayObjectContainer):void{
			_parent = parent;
			_parent.addChild(_view);
		}
		
		/**
		 * 初始化view
		 */		
		protected function createView():void{
			
		}
		
		/**
		 * 在scene仅仅是隐藏的时候掉用
		 * 之后仍然会通过initalize方法出现
		 */		
		public function clear():void{
			_parent.removeChild(_view);
			_parent = null;
		}
		
		/**
		 * 销毁整个对象,不再使用
		 */		
		public function displse():void{
			clear();
			_view = null;
		}
	}
}